package com.ruoyi.common.base.biz.service.biz;

import com.github.pagehelper.PageInfo;
import com.ruoyi.common.core.domain.BizBaseEntity;

import java.util.List;

/**
 * BizBaseService
 *
 * @author ZhengJun
 * @since 2023/6/7 22:31
 */
public interface BaseBizService<E extends BizBaseEntity, Req extends E, Res extends E>
{

    /**
     * 分页列表信息
     *
     * @param req 请求信息
     * @return 分页列表信息
     */
    PageInfo<Res> paging(Req req);

    /**
     * 根据id列表删除信息
     *
     * @param idList id列表数据
     * @return true/false
     */
    boolean removeByIdList(List<Long> idList);

    /**
     * 修改数据
     *
     * @param req 请求信息
     * @return true/false
     */
    boolean update(Req req);

    /**
     * 新增数据
     *
     * @param req 请求信息
     * @return true/false
     */
    boolean save(Req req);

    /**
     * 列表信息
     *
     * @param req 请求信息
     * @return 数据列表
     */
    List<Res> list(Req req);

    /**
     * 根据id 获取数据信息
     *
     * @param id 数据id
     * @return 数据信息
     */
    Res getById(Long id);
}
